package com.ys.nms.module.business.dal.dataobject.customOid;

import com.ys.nms.framework.mybatis.core.dataobject.BaseSlaveDO;
import com.ys.nms.framework.tenant.core.aop.TenantIgnore;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.ys.nms.framework.mybatis.core.dataobject.BaseDO;

/**
 * 自定义OID DO
 *
 * @author ZZY
 */
@TableName("customoids")
@KeySequence("customoids_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TenantIgnore
public class CustomOidDO extends BaseSlaveDO {

    /**
     * ID
     */
    @TableId
    @TableField(value = "customoid_id")
    private Integer customoidId;
    /**
     * 设备ID
     */
    private Integer deviceId;
    /**
     * 描述
     */
    private String customoidDescr;
    /**
     * 0未删除1删除
     */
    private Integer customoidDeleted;
    /**
     * 当前采集到的 OID 值，经过乘数/除数处理后的实际值
     */
    private Double customoidCurrent;
    /**
     * 上一次采集到的 OID 值
     */
    private Double customoidPrev;
    /**
     * OID
     */
    private String customoidOid;
    /**
     * 数据类型，常见值包括：	• GAUGE	（瞬时值，如温度）	• COUNTER	（计数器，如流量）	• DERIVE	（差值）	• ABSOLUTE	（绝对值）
     */
    private String customoidDatatype;
    /**
     * 单位标识，如 %	、°C	、RPM
     */
    private String customoidUnit;
    /**
     * 采集值除以此数得到实际值
     */
    private Integer customoidDivisor;
    /**
     * 采集值乘以此数得到实际值
     */
    private Integer customoidMultiplier;
    /**
     * 告警上限阈值。当值超过此数且 customoid_alert=1	 时触发告警。
     */
    private Double customoidLimit;
    /**
     * 警告上限阈值。超过此值但未达 limit	 时触发警告。
     */
    private Double customoidLimitWarn;
    /**
     * 告警下限阈值。当值低于此数且 customoid_alert=1	 时触发告警。
     */
    private Double customoidLimitLow;
    /**
     * 警告下限阈值。低于此值但未达 limit_low	 时触发警告。
     */
    private Double customoidLimitLowWarn;
    /**
     * 是否启用告警：0=不启用，1=启用。
     */
    private Integer customoidAlert;
    /**
     * 当前值是否通过阈值检查：0=未通过（告警或警告），1=通过（正常
     */
    private Integer customoidPassed;
    /**
     * 最后更新时间戳
     */
    private LocalDateTime lastupdate;
    /**
     * 用户自定义处理函数名
     */
    private String userFunc;


}
